[INFO] cloning repository https://github.com/nclandrei/distill
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nclandrei/distill" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnclandrei%2Fdistill", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnclandrei%2Fdistill'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6c10b7cf688c3ddcfa7b577229a3d0e35314f111
[INFO] testing nclandrei/distill against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnclandrei%2Fdistill" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nclandrei/distill
[INFO] finished tweaking git repo https://github.com/nclandrei/distill
[INFO] tweaked toml for git repo https://github.com/nclandrei/distill written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nclandrei/distill on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nclandrei/distill already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8cb2e613925b82b32c7faf0073c52413994381970c9441dd5ee058401eab4362
[INFO] running `Command { std: "docker" "start" "-a" "8cb2e613925b82b32c7faf0073c52413994381970c9441dd5ee058401eab4362", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8cb2e613925b82b32c7faf0073c52413994381970c9441dd5ee058401eab4362", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8cb2e613925b82b32c7faf0073c52413994381970c9441dd5ee058401eab4362", kill_on_drop: false }`
[INFO] [stdout] 8cb2e613925b82b32c7faf0073c52413994381970c9441dd5ee058401eab4362
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] bbd864fdce6b567133bffa5a1b567779b545500ade6bd7650500f7a51800668e
[INFO] running `Command { std: "docker" "start" "-a" "bbd864fdce6b567133bffa5a1b567779b545500ade6bd7650500f7a51800668e", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling float-cmp v0.9.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling strict-num v0.1.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling roxmltree v0.20.0
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]    Compiling tiny-skia-path v0.11.4
[INFO] [stderr]    Compiling tinyvec v1.10.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling fontconfig-parser v0.5.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling memmap2 v0.9.10
[INFO] [stderr]    Compiling kurbo v0.11.3
[INFO] [stderr]    Compiling core_maths v0.1.1
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling ttf-parser v0.25.1
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling unicode-bidi-mirroring v0.4.0
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]    Compiling unicode-ccc v0.4.0
[INFO] [stderr]    Compiling unicode-script v0.5.8
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling simplecss v0.2.2
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling pxfm v0.1.28
[INFO] [stderr]    Compiling weezl v0.1.12
[INFO] [stderr]    Compiling unicode-vo v0.1.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling imagesize v0.13.0
[INFO] [stderr]    Compiling data-url v0.3.2
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling pico-args v0.5.0
[INFO] [stderr]    Compiling xmlwriter v0.1.0
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling gif v0.13.3
[INFO] [stderr]    Compiling image-webp v0.2.4
[INFO] [stderr]    Compiling zune-jpeg v0.4.21
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling rgb v0.8.53
[INFO] [stderr]    Compiling tiny-skia v0.11.4
[INFO] [stderr]    Compiling svgtypes v0.15.3
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling fontdb v0.23.0
[INFO] [stderr]    Compiling rustybuzz v0.20.1
[INFO] [stderr]    Compiling moxcms v0.7.11
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.11
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling usvg v0.45.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling resvg v0.45.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling image v0.25.9
[INFO] [stderr]    Compiling distill-cli v0.5.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: method `launchd_start_calendar_interval` is never used
[INFO] [stdout]   --> src/schedule/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl ScheduleCadence {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 27 |     fn launchd_start_calendar_interval(self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 16s
[INFO] running `Command { std: "docker" "inspect" "bbd864fdce6b567133bffa5a1b567779b545500ade6bd7650500f7a51800668e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bbd864fdce6b567133bffa5a1b567779b545500ade6bd7650500f7a51800668e", kill_on_drop: false }`
[INFO] [stdout] bbd864fdce6b567133bffa5a1b567779b545500ade6bd7650500f7a51800668e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0e8b085b42a64f1f215bf4e63c229a1cb1e8a51c0055cf0399747f4763d2e763
[INFO] running `Command { std: "docker" "start" "-a" "0e8b085b42a64f1f215bf4e63c229a1cb1e8a51c0055cf0399747f4763d2e763", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling assert_cmd v2.1.2
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling distill-cli v0.5.4 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stdout] warning: method `launchd_start_calendar_interval` is never used
[INFO] [stdout]   --> src/schedule/mod.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl ScheduleCadence {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 27 |     fn launchd_start_calendar_interval(self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 28.13s
[INFO] running `Command { std: "docker" "inspect" "0e8b085b42a64f1f215bf4e63c229a1cb1e8a51c0055cf0399747f4763d2e763", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0e8b085b42a64f1f215bf4e63c229a1cb1e8a51c0055cf0399747f4763d2e763", kill_on_drop: false }`
[INFO] [stdout] 0e8b085b42a64f1f215bf4e63c229a1cb1e8a51c0055cf0399747f4763d2e763
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9e7695ee5fd493154d02ea2460138e409adcd6b6945a0610f0a4229e0ece2ee0
[INFO] running `Command { std: "docker" "start" "-a" "9e7695ee5fd493154d02ea2460138e409adcd6b6945a0610f0a4229e0ece2ee0", kill_on_drop: false }`
[INFO] [stderr] warning: method `launchd_start_calendar_interval` is never used
[INFO] [stderr]   --> src/schedule/mod.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 26 | impl ScheduleCadence {
[INFO] [stderr]    | -------------------- method in this implementation
[INFO] [stderr] 27 |     fn launchd_start_calendar_interval(self) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `distill-cli` (bin "distill") generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/distill-054d168b10fdde73)
[INFO] [stdout] 
[INFO] [stdout] running 303 tests
[INFO] [stdout] test agents::tests::test_agent_kind_command_name ... ok
[INFO] [stdout] test agents::tests::test_agent_kind_all_returns_supported_variants ... ok
[INFO] [stdout] test agents::tests::test_claude_adapter_config_dir ... ok
[INFO] [stdout] test agents::tests::test_agent_kind_serde_roundtrip ... ok
[INFO] [stdout] test agents::tests::test_find_agent_command_in_path_returns_none_when_missing ... ok
[INFO] [stdout] test agents::tests::test_claude_read_sessions_returns_jsonl_files ... ok
[INFO] [stdout] test agents::tests::test_claude_write_skill_preserves_existing_structured_content ... ok
[INFO] [stdout] test agents::tests::test_claude_read_sessions_walks_nested_dirs ... ok
[INFO] [stdout] test agents::tests::test_from_kind_returns_codex_adapter ... ok
[INFO] [stdout] test agents::tests::test_codex_read_sessions_returns_jsonl_files ... ok
[INFO] [stdout] test agents::tests::test_claude_write_skill_creates_parent_dir ... ok
[INFO] [stdout] test agents::tests::test_claude_write_skill_idempotent ... ok
[INFO] [stdout] test agents::tests::test_claude_read_sessions_missing_dir_returns_empty ... ok
[INFO] [stdout] test agents::tests::test_codex_write_skill_uses_when_to_use_text_for_generated_description ... ok
[INFO] [stdout] test agents::tests::test_opencode_read_sessions_empty_cli_output_returns_empty ... ok
[INFO] [stdout] test agents::tests::test_codex_write_multiple_distinct_skills_appends_all ... ok
[INFO] [stdout] test agents::tests::test_find_agent_command_in_path_finds_binary ... ok
[INFO] [stdout] test agents::tests::test_codex_write_skill_creates_parent_dir ... ok
[INFO] [stdout] test agents::tests::test_codex_write_skill_idempotent ... ok
[INFO] [stdout] test agents::tests::test_agent_kind_display ... ok
[INFO] [stdout] test agents::tests::test_codex_adapter_config_dir ... ok
[INFO] [stdout] test agents::tests::test_codex_read_sessions_missing_dir_returns_empty ... ok
[INFO] [stdout] test agents::tests::test_from_kind_returns_claude_adapter ... ok
[INFO] [stdout] test agents::tests::test_from_kind_returns_opencode_adapter ... ok
[INFO] [stdout] test agents::tests::test_opencode_read_sessions_missing_list_returns_error ... ok
[INFO] [stdout] test agents::tests::test_opencode_export_session_falls_back_when_format_flag_is_unsupported ... ok
[INFO] [stdout] test agents::tests::test_parse_opencode_session_list_accepts_empty_output ... ok
[INFO] [stdout] test agents::tests::test_parse_opencode_session_list_accepts_epoch_millis_updated_field ... ok
[INFO] [stdout] test agents::tests::test_opencode_write_skill_creates_parent_dir ... ok
[INFO] [stdout] test agents::tests::test_parse_opencode_session_list_accepts_nested_sessions_array ... ok
[INFO] [stdout] test agents::tests::test_opencode_read_sessions_uses_cli_json_output ... ok
[INFO] [stdout] test agents::tests::test_read_sessions_since_filter_excludes_old_files ... ok
[INFO] [stdout] test agents::tests::test_read_sessions_ignores_non_jsonl_files ... ok
[INFO] [stdout] test agents::tests::test_session_content_is_empty ... ok
[INFO] [stdout] test commands::dedupe::tests::test_find_duplicate_groups_identifies_duplicates ... ok
[INFO] [stdout] test agents::tests::test_read_sessions_since_filter_includes_new_files ... ok
[INFO] [stdout] test agents::tests::test_session_path_matches_file_path ... ok
[INFO] [stdout] test agents::tests::test_session_serde_roundtrip ... ok
[INFO] [stdout] test commands::notify::tests::test_print_pending_proposals_runs_for_single_and_plural ... ok
[INFO] [stdout] test commands::dedupe::tests::test_find_duplicate_groups_normalizes_line_endings_and_trailing_whitespace ... ok
[INFO] [stdout] test commands::dedupe::tests::test_build_remove_proposal_targets_duplicate ... ok
[INFO] [stdout] test commands::dedupe::tests::test_normalize_target_key_adds_md_suffix ... ok
[INFO] [stdout] test agents::tests::test_write_multiple_distinct_skills_appends_all ... ok
[INFO] [stdout] test commands::dedupe::tests::test_run_with_paths_skips_existing_pending_remove ... ok
[INFO] [stdout] test commands::dedupe::tests::test_run_with_paths_dry_run_does_not_write_proposals ... ok
[INFO] [stdout] test commands::dedupe::tests::test_sanitize_slug ... ok
[INFO] [stdout] test commands::dedupe::tests::test_run_with_paths_writes_remove_proposals ... ok
[INFO] [stdout] test commands::notify::tests::test_print_pending_proposals_zero_is_still_safe ... ok
[INFO] [stdout] test commands::onboard::tests::test_config_from_spec_preserves_values ... ok
[INFO] [stdout] test commands::onboard::tests::test_default_config_from_detected_prefers_installed_agents ... ok
[INFO] [stdout] test commands::review::tests::test_decision_to_review ... ok
[INFO] [stdout] test commands::onboard::tests::test_validate_spec_rejects_disabled_proposal_agent ... ok
[INFO] [stdout] test commands::onboard::tests::test_validate_spec_rejects_unknown_agent ... ok
[INFO] [stdout] test commands::onboard::tests::test_validate_spec_rejects_all_agents_disabled ... ok
[INFO] [stdout] test commands::onboard::tests::test_export_spec_existing_config_with_hook_sets_install_shell_hook_true ... ok
[INFO] [stdout] test commands::onboard::tests::test_export_spec_existing_config_without_hook_sets_install_shell_hook_false ... ok
[INFO] [stdout] test commands::review::tests::test_proposal_to_spec_keeps_filename ... ok
[INFO] [stdout] test commands::review::tests::test_validate_spec_rejects_duplicate_filename ... ok
[INFO] [stdout] test commands::scan::tests::test_build_agents_enables_only_known_enabled_agents ... ok
[INFO] [stdout] test commands::scan::tests::test_build_agents_keeps_both_supported_agents_when_enabled ... ok
[INFO] [stdout] test commands::scheduled_run::tests::test_parse_optional_positive_u64_env_uses_default_when_missing ... ok
[INFO] [stdout] test commands::status::tests::test_format_status_disabled_agent ... ok
[INFO] [stdout] test commands::status::tests::test_collect_status_info_preserves_config ... ok
[INFO] [stdout] test commands::status::tests::test_collect_status_info_empty_dirs ... ok
[INFO] [stdout] test commands::status::tests::test_collect_status_info_counts_shared_skill_dirs ... ok
[INFO] [stdout] test commands::scan::tests::test_scan_trigger_label_now_false ... ok
[INFO] [stdout] test commands::status::tests::test_format_status_default_config ... ok
[INFO] [stdout] test commands::scan::tests::test_scan_trigger_label_now_true ... ok
[INFO] [stdout] test commands::scan::tests::test_last_scan_debug_artifact_path_reads_pointer_file ... ok
[INFO] [stdout] test commands::status::tests::test_format_status_never_scanned ... ok
[INFO] [stdout] test commands::status::tests::test_format_status_shows_all_agents ... ok
[INFO] [stdout] test commands::status::tests::test_format_status_shows_proposal_count ... ok
[INFO] [stdout] test commands::status::tests::test_collect_status_info_reports_overdue_schedule_state_for_missed_run ... ok
[INFO] [stdout] test commands::status::tests::test_collect_status_info_ignores_non_md_files ... ok
[INFO] [stdout] test commands::status::tests::test_scheduled_scan_timing_marks_missed_daily_slot_overdue ... ok
[INFO] [stdout] test commands::status::tests::test_format_status_shows_skill_count ... ok
[INFO] [stdout] test commands::status::tests::test_collect_status_info_missing_dirs ... ok
[INFO] [stdout] test config::tests::test_config_deserialize_from_yaml ... ok
[INFO] [stdout] test commands::status::tests::test_format_status_with_last_scan ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test commands::status::tests::test_scheduled_scan_timing_returns_next_weekly_slot_after_recent_scan ... ok
[INFO] [stdout] test commands::status::tests::test_format_status_display_formatting_not_debug ... ok
[INFO] [stdout] test config::tests::test_interval_display ... ok
[INFO] [stdout] test config::tests::test_config_deserialize_without_sync_agents_defaults_empty ... ok
[INFO] [stdout] test config::tests::test_ensure_dirs_at_is_idempotent ... ok
[INFO] [stdout] test commands::scheduled_run::tests::test_parse_optional_positive_usize_env_zero_disables_limit ... ok
[INFO] [stdout] test commands::status::tests::test_collect_status_info_parses_last_scan_timestamp_field ... ok
[INFO] [stdout] test commands::status::tests::test_format_status_shows_backlog_count ... ok
[INFO] [stdout] test config::tests::test_load_from_missing_optional_fields_uses_defaults ... ok
[INFO] [stdout] test config::tests::test_notification_pref_display ... ok
[INFO] [stdout] test commands::status::tests::test_scheduled_scan_timing_returns_next_monthly_slot_after_catch_up ... ok
[INFO] [stdout] test config::tests::test_shell_type_detect ... ok
[INFO] [stdout] test config::tests::test_shell_type_display ... ok
[INFO] [stdout] test config::tests::test_load_from_returns_error_on_missing_file ... ok
[INFO] [stdout] test config::tests::test_config_roundtrip_yaml ... ok
[INFO] [stdout] test config::tests::test_ensure_dirs_at_creates_subdirectories ... ok
[INFO] [stdout] test config::tests::test_save_to_load_from_preserves_all_fields ... ok
[INFO] [stdout] test notify::tests::test_first_existing_path_picks_first_existing_candidate ... ok
[INFO] [stdout] test notify::tests::test_first_existing_path_returns_none_when_all_missing ... ok
[INFO] [stdout] test commands::status::tests::test_collect_status_info_counts_md_files ... ok
[INFO] [stdout] test config::tests::test_config_save_and_load ... ok
[INFO] [stdout] test notify::tests::test_parse_terminal_image_protocol_iterm_aliases ... ok
[INFO] [stdout] test notify::tests::test_parse_terminal_image_protocol_kitty ... ok
[INFO] [stdout] test config::tests::test_save_to_load_from_roundtrip ... ok
[INFO] [stdout] test notify::tests::test_protocol_from_terminal_name_iterm ... ok
[INFO] [stdout] test notify::tests::test_protocol_from_terminal_name_prefers_kitty_like ... ok
[INFO] [stdout] test notify::tests::test_notify_scan_complete_with_proposals ... ok
[INFO] [stdout] test notify::tests::test_notify_scan_complete_zero_proposals ... ok
[INFO] [stdout] test notify::tests::test_parse_terminal_image_protocol_none_for_unknown ... ok
[INFO] [stdout] test notify::tests::test_resolve_icon_path_prefers_valid_configured_path ... ok
[INFO] [stdout] test config::tests::test_save_to_creates_parent_dirs ... ok
[INFO] [stdout] test notify::tests::test_macos_notifier_is_available_reflects_platform ... ok
[INFO] [stdout] test notify::tests::test_notify_scan_complete_message_format ... ok
[INFO] [stdout] test notify::tests::test_terminal_image_mode_explicit_on_enables_rendering ... ok
[INFO] [stdout] test notify::tests::test_terminal_notifier_is_available ... ok
[INFO] [stdout] test notify::tests::test_terminal_notifier_send ... ok
[INFO] [stdout] test notify::tests::test_send_notification_none_pref ... ok
[INFO] [stdout] test notify::tests::test_send_notification_terminal_pref ... ok
[INFO] [stdout] test notify::tests::test_terminal_image_mode_defaults_to_disabled ... ok
[INFO] [stdout] test onboard::tests::test_build_config_daily_interval ... ok
[INFO] [stdout] test notify::tests::test_write_embedded_icon_to_cache_creates_non_empty_file ... ok
[INFO] [stdout] test onboard::tests::test_build_config_monthly_interval_and_native_notifications ... ok
[INFO] [stdout] test onboard::tests::test_build_config_proposal_agent_codex ... ok
[INFO] [stdout] test notify::tests::test_send_native_notification_is_best_effort_with_terminal_fallback ... ok
[INFO] [stdout] test onboard::tests::test_confirm_action_cycles_in_expected_order ... ok
[INFO] [stdout] test notify::tests::test_terminal_image_mode_explicit_off_disables_rendering ... ok
[INFO] [stdout] test onboard::tests::test_detect_agents_none_installed ... ok
[INFO] [stdout] test onboard::tests::test_build_config_agent_entries_match_detected ... ok
[INFO] [stdout] test onboard::tests::test_detect_agents_codex_only ... ok
[INFO] [stdout] test onboard::tests::test_build_config_default_answers ... ok
[INFO] [stdout] test onboard::tests::test_detect_agents_both_installed ... ok
[INFO] [stdout] test onboard::tests::test_build_config_default_interval_is_weekly ... ok
[INFO] [stdout] test notify::tests::test_linux_notifier_is_available_does_not_panic ... ok
[INFO] [stdout] test preferences::tests::test_load_infers_type_from_legacy_filename_only_history ... ok
[INFO] [stdout] test preferences::tests::test_load_builds_prefer_and_avoid_signals ... ok
[INFO] [stdout] test onboard::tests::test_step_sequence_hides_hook_for_other_shell ... ok
[INFO] [stdout] test onboard::tests::test_jump_to_step_number_with_other_shell_skips_hook_slot ... ok
[INFO] [stdout] test onboard::tests::test_build_config_enables_only_selected_agents ... ok
[INFO] [stdout] test preferences::tests::test_load_missing_history_file ... ok
[INFO] [stdout] test notify::tests::test_send_native_notification_is_best_effort_without_terminal_fallback ... ok
[INFO] [stdout] test onboard::tests::test_jump_to_confirm_resets_action_to_save_and_scan ... ok
[INFO] [stdout] test onboard::tests::test_build_config_shell_detection_used ... ok
[INFO] [stdout] test onboard::tests::test_apply_post_onboarding_setup_reports_unsupported_shell ... ok
[INFO] [stdout] test preferences::tests::test_to_prompt_block_without_history ... ok
[INFO] [stdout] test proposal_runner::tests::test_extract_claude_stream_output_uses_last_json_candidate ... ok
[INFO] [stdout] test proposal_runner::tests::test_extract_json_value_handles_fenced_blocks ... ok
[INFO] [stdout] test onboard::tests::test_detect_agents_opencode_only ... ok
[INFO] [stdout] test proposal_runner::tests::test_extract_opencode_json_output_reads_embedded_result ... ok
[INFO] [stdout] test proposal_runner::tests::test_locked_opencode_config_json_denies_mutation_tools ... ok
[INFO] [stdout] test proposal_runner::tests::test_prepare_proposal_command_for_opencode_sets_inline_permissions ... ok
[INFO] [stdout] test proposal_runner::tests::test_proposal_agent_command_supports_opencode ... ok
[INFO] [stdout] test proposal_runner::tests::test_proposal_agent_mode_detects_known_profiles ... ok
[INFO] [stdout] test proposals::tests::test_confidence_serde ... ok
[INFO] [stdout] test proposal_runner::tests::test_prepare_isolated_codex_home_under_debug_run_dir_is_preserved ... ok
[INFO] [stdout] test onboard::tests::test_apply_post_onboarding_setup_skips_hook_when_declined ... ok
[INFO] [stdout] test proposal_runner::tests::test_populate_isolated_codex_home_copies_control_plane_only ... ok
[INFO] [stdout] test proposal_runner::tests::test_prepare_isolated_opencode_home_without_debug_run_dir_cleans_up_on_drop ... ok
[INFO] [stdout] test proposal_runner::tests::test_prepare_isolated_codex_home_under_debug_run_dir_reuses_existing_symlinks ... ok
[INFO] [stdout] test proposals::tests::test_infer_skill_name_from_body_returns_none_without_heading ... ok
[INFO] [stdout] test proposal_runner::tests::test_populate_isolated_opencode_home_copies_control_plane_only ... ok
[INFO] [stdout] test proposals::tests::test_frontmatter_roundtrip_with_file_target ... ok
[INFO] [stdout] test proposals::tests::test_infer_skill_name_from_body_slugifies_markdown_title ... ok
[INFO] [stdout] test proposals::tests::test_legacy_target_skill_resolves_to_skill_target ... ok
[INFO] [stdout] test proposals::tests::test_proposal_from_invalid_markdown ... ok
[INFO] [stdout] test proposal_runner::tests::test_populate_isolated_claude_home_copies_control_plane_only ... ok
[INFO] [stdout] test proposals::tests::test_proposal_to_markdown ... ok
[INFO] [stdout] test proposals::tests::test_frontmatter_serde_roundtrip ... ok
[INFO] [stdout] test proposals::tests::test_proposal_roundtrip ... ok
[INFO] [stdout] test onboard::tests::test_detect_agents_claude_only ... ok
[INFO] [stdout] test review::tests::test_load_proposals_empty_dir ... ok
[INFO] [stdout] test proposals::tests::test_proposal_type_serde ... ok
[INFO] [stdout] test review::tests::test_accept_proposal_uses_target_skill_filename ... ok
[INFO] [stdout] test onboard::tests::test_apply_post_onboarding_setup_installs_hook_and_scheduler ... ok
[INFO] [stdout] test review::tests::test_load_proposals_from_dir ... ok
[INFO] [stdout] test review::tests::test_accept_improve_updates_existing_shared_skill_source_and_preserves_frontmatter ... ok
[INFO] [stdout] test review::tests::test_load_proposals_nonexistent_dir ... ok
[INFO] [stdout] test review::tests::test_derive_preference_tags_includes_type_target_and_topic ... ok
[INFO] [stdout] test review::tests::test_accept_proposal_removes_proposal ... ok
[INFO] [stdout] test review::tests::test_load_proposals_ignores_non_md_files ... ok
[INFO] [stdout] test review::tests::test_accept_remove_proposal_requires_target_skill ... ok
[INFO] [stdout] test review::tests::test_accept_proposal_logs_to_history ... ok
[INFO] [stdout] test review::tests::test_pending_confirmation_maps_to_expected_intent ... ok
[INFO] [stdout] test review::tests::test_required_confirmation_for_accept_remove ... ok
[INFO] [stdout] test review::tests::test_log_decision_creates_history_dir ... ok
[INFO] [stdout] test review::tests::test_load_proposals_sets_filename_field ... ok
[INFO] [stdout] test review::tests::test_reject_proposal_removes_file ... ok
[INFO] [stdout] test review::tests::test_reject_proposal_logs_to_history ... ok
[INFO] [stdout] test review::tests::test_log_decision_entry_is_valid_json ... ok
[INFO] [stdout] test review::tests::test_accept_proposal_writes_skill ... ok
[INFO] [stdout] test review::tests::test_load_proposals_sorted_by_filename ... ok
[INFO] [stdout] test review::tests::test_review_ui_action_focus_cycles ... ok
[INFO] [stdout] test review::tests::test_accept_remove_deletes_existing_shared_skill_directory ... ok
[INFO] [stdout] test review::tests::test_accept_remove_proposal_deletes_target_skill ... ok
[INFO] [stdout] test review::tests::test_log_decision_appends ... ok
[INFO] [stdout] test review::tests::test_proposal_details_warns_when_remove_target_missing ... ok
[INFO] [stdout] test run_history::tests::test_load_run_records_missing_file ... ok
[INFO] [stdout] test run_history::tests::test_append_and_load_run_records_roundtrip ... ok
[INFO] [stdout] test run_history::tests::test_run_history_ui_filter_cycles ... ok
[INFO] [stdout] test review::tests::test_review_summary_counts ... ok
[INFO] [stdout] test scanner::engine::tests::test_agent_timeout_accepts_zero_to_disable ... ok
[INFO] [stdout] test review::tests::test_required_confirmation_for_accept_all_with_removals ... ok
[INFO] [stdout] test scanner::engine::tests::test_agent_timeout_defaults_to_two_hours ... ok
[INFO] [stdout] test scanner::engine::tests::test_backlog_appends_new_sessions_after_existing_queue ... ok
[INFO] [stdout] test scanner::engine::tests::test_build_prompt_references_manifest_and_not_excerpts ... ok
[INFO] [stdout] test scanner::engine::tests::test_build_staged_session_summary_extracts_current_opencode_export_shape ... ok
[INFO] [stdout] test review::tests::test_review_all_accept ... ok
[INFO] [stdout] test scanner::engine::tests::test_build_staged_session_summary_extracts_opencode_export_messages_and_tools ... ok
[INFO] [stdout] test review::tests::test_review_all_reject ... ok
[INFO] [stdout] test scanner::engine::tests::test_detect_agent_auth_hint_claude_authentication_failed ... ok
[INFO] [stdout] test scanner::engine::tests::test_detect_agent_auth_hint_not_logged_in_in_stderr ... ok
[INFO] [stdout] test scanner::engine::tests::test_detect_agent_auth_hint_returns_none_for_unrelated_errors ... ok
[INFO] [stdout] test scanner::engine::tests::test_parse_scan_response_normalizes_relative_paths ... ok
[INFO] [stdout] test scanner::engine::tests::test_agent_timeout_parses_positive_seconds ... ok
[INFO] [stdout] test scanner::engine::tests::test_scan_debug_artifacts_cleanup_success_run ... ok
[INFO] [stdout] test scanner::engine::tests::test_scan_debug_artifacts_preserve_failure_run ... ok
[INFO] [stdout] test scanner::engine::tests::test_select_session_batch_keeps_single_oversized_first_session ... ok
[INFO] [stdout] test scanner::engine::tests::test_stage_scan_workspace_truncates_large_session_fields ... ok
[INFO] [stdout] test scanner::engine::tests::test_stage_scan_workspace_copies_sessions_and_skills ... ok
[INFO] [stdout] test scanner::engine::tests::test_stage_timeline_workspace_skips_missing_session_files ... ok
[INFO] [stdout] test scanner::engine::tests::test_touched_paths_from_audit_log_ignores_non_tool_messages ... ok
[INFO] [stdout] test scanner::engine::tests::test_validate_and_finalize_response_rejects_missing_coverage ... ok
[INFO] [stdout] test scanner::reader::tests::test_collect_sessions_deduplicates ... ok
[INFO] [stdout] test scanner::reader::tests::test_collect_sessions_keeps_same_basename_from_different_paths ... ok
[INFO] [stdout] test scanner::reader::tests::test_collect_sessions_sorted_by_timestamp ... ok
[INFO] [stdout] test run_history::tests::test_summarize_run_records_counts_successes_and_failures ... ok
[INFO] [stdout] test scanner::reader::tests::test_last_scan_load_missing_file ... ok
[INFO] [stdout] test scanner::engine::tests::test_touched_paths_from_audit_log_matches_private_prefix_and_double_slashes ... ok
[INFO] [stdout] test scanner::reader::tests::test_last_scan_roundtrip ... ok
[INFO] [stdout] test run_history::tests::test_load_run_records_returns_newest_first ... ok
[INFO] [stdout] test scanner::state::tests::test_scan_state_attempted_workflow_waits_for_new_evidence ... ok
[INFO] [stdout] test scanner::state::tests::test_scan_state_proposed_workflow_is_not_ready_again ... ok
[INFO] [stdout] test run_history::tests::test_failed_record_truncates_error_text ... ok
[INFO] [stdout] test scanner::state::tests::test_scan_state_ready_workflow_requires_three_sessions ... ok
[INFO] [stdout] test review::tests::test_accept_new_proposal_uses_body_title_when_target_missing ... ok
[INFO] [stdout] test review::tests::test_review_all_skip ... ok
[INFO] [stdout] test scanner::timeline::tests::test_codex_timeline_keeps_middle_command_execution ... ok
[INFO] [stdout] test scanner::engine::tests::test_backlog_seeds_newest_first_on_first_scan ... ok
[INFO] [stdout] test scanner::timeline::tests::test_render_timeline_window_keeps_requested_middle_range ... ok
[INFO] [stdout] test schedule::tests::test_launchd_plist_path ... ok
[INFO] [stdout] test scanner::engine::tests::test_select_session_batch_respects_count_and_raw_byte_cap ... ok
[INFO] [stdout] test schedule::tests::test_launchd_status_not_installed ... ok
[INFO] [stdout] test schedule::tests::test_systemd_status_not_installed ... ok
[INFO] [stdout] test schedule::tests::test_launchd_install_creates_plist ... ok
[INFO] [stdout] test schedule::tests::test_launchd_plist_contains_interval ... ok
[INFO] [stdout] test schedule::tests::test_systemd_unit_paths ... ok
[INFO] [stdout] test schedule::tests::test_uninstall_is_idempotent_launchd ... ok
[INFO] [stdout] test schedule::tests::test_uninstall_is_idempotent_systemd ... ok
[INFO] [stdout] test shell::tests::test_hook_snippet_bash ... ok
[INFO] [stdout] test shell::tests::test_hook_snippet_fish ... ok
[INFO] [stdout] test shell::tests::test_hook_snippet_other_is_empty ... ok
[INFO] [stdout] test shell::tests::test_hook_snippet_zsh ... ok
[INFO] [stdout] test schedule::tests::test_systemd_service_contains_exec_start ... ok
[INFO] [stdout] test shell::tests::test_install_hook_appends_to_existing_file ... ok
[INFO] [stdout] test shell::tests::test_install_hook_bash ... ok
[INFO] [stdout] test schedule::tests::test_launchd_plist_uses_calendar_intervals_for_wake_catch_up ... ok
[INFO] [stdout] test schedule::tests::test_systemd_install_creates_files ... ok
[INFO] [stdout] test shell::tests::test_install_hook_unsupported_shell ... ok
[INFO] [stdout] test schedule::tests::test_systemd_status_installed ... ok
[INFO] [stdout] test shell::tests::test_install_hook_zsh ... ok
[INFO] [stdout] test shell::tests::test_shell_config_path_bash ... ok
[INFO] [stdout] test shell::tests::test_shell_config_path_fish ... ok
[INFO] [stdout] test shell::tests::test_shell_config_path_other ... ok
[INFO] [stdout] test shell::tests::test_install_hook_idempotent ... ok
[INFO] [stdout] test schedule::tests::test_launchd_uninstall_removes_plist ... ok
[INFO] [stdout] test shell::tests::test_uninstall_hook_not_found_missing_file ... ok
[INFO] [stdout] test run_history::tests::test_draw_run_history_ui_renders_empty_filter_state ... ok
[INFO] [stdout] test schedule::tests::test_systemd_install_fails_if_systemctl_fails ... ok
[INFO] [stdout] test shell::tests::test_uninstall_hook_not_found_no_marker ... ok
[INFO] [stdout] test schedule::tests::test_launchd_install_fails_if_launchctl_fails ... ok
[INFO] [stdout] test schedule::tests::test_launchd_status_installed ... ok
[INFO] [stdout] test schedule::tests::test_launchd_plist_is_valid_xml ... ok
[INFO] [stdout] test review::tests::test_draw_review_ui_renders_footer_actions_and_status ... ok
[INFO] [stdout] test shell::tests::test_shell_config_path_zsh ... ok
[INFO] [stdout] test sync::tests::test_load_skills_empty_dir ... ok
[INFO] [stdout] test shell::tests::test_uninstall_hook_preserves_surrounding_content ... ok
[INFO] [stdout] test run_history::tests::test_draw_run_history_ui_renders_summary_and_details ... ok
[INFO] [stdout] test sync::tests::test_load_skills_from_directory ... ok
[INFO] [stdout] test sync::tests::test_load_skill_sources_tracks_origin_paths ... ok
[INFO] [stdout] test shell::tests::test_install_hook_fish_creates_dirs ... ok
[INFO] [stdout] test shell::tests::test_uninstall_hook ... ok
[INFO] [stdout] test sync::tests::test_load_skills_nonexistent_dir ... ok
[INFO] [stdout] test sync::tests::test_load_skills_supports_skill_directories ... ok
[INFO] [stdout] test sync::tests::test_load_skills_ignores_non_md ... ok
[INFO] [stdout] test sync::tests::test_load_skills_from_dirs_dedupes_by_name_preferring_first_root ... ok
[INFO] [stdout] test schedule::tests::test_systemd_timer_contains_calendar ... ok
[INFO] [stdout] test sync::tests::test_sync_skills_empty_agents_list ... ok
[INFO] [stdout] test sync::tests::test_run_sync_nonexistent_skills_dir ... ok
[INFO] [stdout] test sync::tests::test_sync_skills_empty_skills_list ... ok
[INFO] [stdout] test sync_agents::tests::test_parse_agent_response_file_target ... ok
[INFO] [stdout] test sync_agents::tests::test_parse_since_date ... ok
[INFO] [stdout] test sync::tests::test_sync_skills_idempotent ... ok
[INFO] [stdout] test sync_agents::tests::test_parse_since_invalid ... ok
[INFO] [stdout] test sync_agents::tests::test_parse_since_rfc3339 ... ok
[INFO] [stdout] test sync_agents::tests::test_pending_file_targets_reads_targets ... ok
[INFO] [stdout] test schedule::tests::test_systemd_uninstall_removes_files ... ok
[INFO] [stdout] test sync::tests::test_run_sync_from_dirs_includes_shared_directory_skills ... ok
[INFO] [stdout] test sync::tests::test_run_sync_end_to_end ... ok
[INFO] [stdout] test sync::tests::test_sync_skills_writes_to_all_agents ... ok
[INFO] [stdout] test shell::tests::test_uninstall_hook_unsupported_shell ... ok
[INFO] [stdout] test sync::tests::test_load_skills_follows_symlinked_skill_directories ... ok
[INFO] [stdout] test shell::tests::test_uninstall_hook_fish ... ok
[INFO] [stdout] test sync_agents::tests::test_resolve_projects_dedupes_and_validates_git_repo ... ok
[INFO] [stdout] test review::tests::test_draw_review_ui_renders_confirmation_modal ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 303 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli.rs (/opt/rustwide/target/debug/deps/cli-1e89943d06ef711f)
[INFO] [stdout] 
[INFO] [stdout] running 34 tests
[INFO] [stdout] test test_help_flag ... ok
[INFO] [stdout] test test_notify_check ... ok
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stdout] test test_dedupe_dry_run_does_not_write_proposals ... ok
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stdout] test test_onboard_write_json_template ... ok
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stdout] test test_dedupe_writes_remove_proposal ... ok
[INFO] [stderr] hint: 
[INFO] [stdout] test test_review_apply_json ... ok
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[INFO] [stdout] test test_review_write_json_stdout ... ok
[INFO] [stderr] hint: 
[INFO] [stdout] test test_onboard_apply_json_stdin ... ok
[INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
[INFO] [stdout] test test_onboard_write_json_stdout ... ok
[INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command:
[INFO] [stdout] test test_review_no_proposals ... ok
[INFO] [stderr] hint: 
[INFO] [stdout] test test_onboard_apply_json_can_run_initial_scan_immediately ... ok
[INFO] [stderr] hint: 	git branch -m <name>
[INFO] [stdout] test test_review_apply_json_stdin ... ok
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stdout] test test_runs_without_history ... ok
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stdout] test test_status_with_config ... ok
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stdout] test test_invalid_subcommand ... ok
[INFO] [stderr] hint: 
[INFO] [stdout] test test_scheduled_run_writes_combined_history_record ... ok
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[INFO] [stderr] hint: 
[INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
[INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git branch -m <name>
[INFO] [stdout] test test_scan_now_writes_run_history_record ... ok
[INFO] [stdout] test test_onboard_apply_json ... ok
[INFO] [stdout] Initialized empty Git repository in /tmp/.tmpt9iCQv/repo-one/.git/
[INFO] [stdout] Initialized empty Git repository in /tmp/.tmpGrMYCX/repo-history/.git/
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stdout] test test_sync_agents_list_configured_empty ... ok
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stdout] test test_version_flag ... ok
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stdout] test test_status_without_config ... ok
[INFO] [stderr] hint: 
[INFO] [stdout] test test_watch_uninstall_stub ... ok
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[INFO] [stdout] test test_watch_mutual_exclusion ... ok
[INFO] [stderr] hint: 
[INFO] [stdout] test test_watch_install_writes_scheduled_run_command ... ok
[INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
[INFO] [stdout] Initialized empty Git repository in /tmp/.tmp5qiEsx/repo-two/.git/
[INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command:
[INFO] [stdout] test test_sync_agents_save_projects_persists_allowlist ... ok
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git branch -m <name>
[INFO] [stdout] test test_sync_agents_dry_run_writes_run_history_record ... ok
[INFO] [stdout] test test_sync_agents_dry_run_does_not_write_proposals ... ok
[INFO] [stdout] test test_review_write_json ... ok
[INFO] [stdout] test test_scan_without_now_flag ... ok
[INFO] [stdout] test test_runs_requires_interactive_terminal_when_history_exists ... ok
[INFO] [stdout] test test_scan_now_without_config ... ok
[INFO] [stdout] test test_watch_install_stub ... ok
[INFO] [stdout] test test_sync_agents_all_configured_errors_when_empty ... ok
[INFO] [stdout] test test_no_args_without_config ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e.rs (/opt/rustwide/target/debug/deps/e2e-9a5bb8992f86a137)
[INFO] [stdout] 
[INFO] [stdout] running 23 tests
[INFO] [stdout] test test_e2e_notify_single_proposal ... ok
[INFO] [stdout] test test_e2e_notify_no_proposals ... ok
[INFO] [stdout] test test_e2e_notify_empty_proposals_dir ... ok
[INFO] [stdout] test test_e2e_notify_with_proposals ... ok
[INFO] [stdout] test test_e2e_scan_creates_proposals_dir ... ok
[INFO] [stdout] test test_e2e_full_flow_status_after_config ... ok
[INFO] [stdout] test test_e2e_status_shows_config ... ok
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[INFO] [stderr] hint: 
[INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
[INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git branch -m <name>
[INFO] [stdout] Initialized empty Git repository in /tmp/.tmpaeqQI4/demo-project/.git/
[INFO] [stdout] test test_e2e_scan_without_now_runs_scheduled_path ... ok
[INFO] [stdout] [master (root-commit) 400305c] Add README
[INFO] [stdout]  1 file changed, 1 insertion(+)
[INFO] [stdout]  create mode 100644 README.md
[INFO] [stdout] test test_e2e_sync_agents_opencode_proposal_agent_writes_proposal ... ok
[INFO] [stdout] test test_e2e_scan_opencode_monitored_sessions_with_generic_proposal_agent ... ok
[INFO] [stdout] test test_e2e_scan_claude_stream_json_with_coverage ... ok
[INFO] [stdout] test test_e2e_scan_ignores_stale_backlog_session_paths ... ok
[INFO] [stdout] test test_e2e_scan_reports_existing_shared_skills_and_manifest_flow ... ok
[INFO] [stdout] test test_e2e_scan_opencode_proposal_agent_uses_isolated_home_and_inline_permissions ... ok
[INFO] [stdout] test test_e2e_scan_codex_proposal_agent_with_schema_enforcement ... ok
[INFO] [stdout] test test_e2e_scan_debug_dir_captures_workspace_and_outputs ... ok
[INFO] [stdout] test test_e2e_preference_learning_roundtrip_review_to_scan_prompt ... ok
[INFO] [stdout] test test_e2e_scan_rejects_missing_coverage_and_keeps_backlog ... ok
[INFO] [stdout] test test_e2e_scan_no_config_error_mentions_config ... ok
[INFO] [stdout] test test_e2e_scheduled_run_drains_multiple_batches_until_budget ... ok
[INFO] [stdout] test test_e2e_scan_codex_middle_workflow_across_projects_writes_proposal ... ok
[INFO] [stdout] test test_e2e_scan_first_run_uses_newest_batch_then_drains_backlog ... ok
[INFO] [stdout] test test_e2e_scan_large_codex_backlog_respects_byte_cap_and_preserves_remaining_sessions ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 23 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.72s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9e7695ee5fd493154d02ea2460138e409adcd6b6945a0610f0a4229e0ece2ee0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9e7695ee5fd493154d02ea2460138e409adcd6b6945a0610f0a4229e0ece2ee0", kill_on_drop: false }`
[INFO] [stdout] 9e7695ee5fd493154d02ea2460138e409adcd6b6945a0610f0a4229e0ece2ee0
